import UIKit

@available(iOS 8.0, *)
extension QKC where AA :UIInputViewController {
    open func inputView_qk_s(_ inputView:  UIInputView?) -> QKC<AA,YY,ZZ, UIInputView?>{
		return link(next: inputView).then_QK { $0.value.inputView = inputView }
	}
    open func inputView_qk_g() -> QKC<AA,YY,ZZ, UIInputView?>{
		 self +^ self.value.inputView
	}

    open func textDocumentProxy_qk_g() -> QKC<AA,YY,ZZ, UITextDocumentProxy >{
		 self +^ self.value.textDocumentProxy
	}

	// If specified, this will supersede any PrimaryLanguage in the Info.plist.
    open func primaryLanguage_qk_s(_ primaryLanguage:  String?) -> QKC<AA,YY,ZZ, String?>{
		return link(next: primaryLanguage).then_QK { $0.value.primaryLanguage = primaryLanguage }
	}
    open func primaryLanguage_qk_g() -> QKC<AA,YY,ZZ, String?>{
		 self +^ self.value.primaryLanguage
	}

	// When this property is set to YES, the system dictation key, if provided, will be disabled.
    open func hasDictationKey_qk_s(_ hasDictationKey:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: hasDictationKey).then_QK { $0.value.hasDictationKey = hasDictationKey }
	}
    open func hasDictationKey_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.hasDictationKey
	}

    @available(iOS 11.0, *)
    open func hasFullAccess_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.hasFullAccess
	}

    @available(iOS 11.0, *)
    open func needsInputModeSwitchKey_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.needsInputModeSwitchKey
	}

    open func dismissKeyboard_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.dismissKeyboard()
	}

    open func advanceToNextInputMode_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.advanceToNextInputMode()
	}

	// Example: [KeyboardButton addTarget:self action:@selector(handleInputModeListFromView:withEvent:) forControlEvents:UIControlEventAllTouchEvents].
    @available(iOS 10.0, *)
    open func handleInputModeList_qk_f(from view: UIView, with event: UIEvent) -> QKC<AA,YY,ZZ, UIView>{
		 self +^ self.value.handleInputModeList(from:view, with:event) +^ view
	}

	// It is solely intended to supplement existing lexicons.
    open func requestSupplementaryLexicon_qk_f(completion completionHandler: @escaping (UILexicon) -> Void) -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.requestSupplementaryLexicon(completion:completionHandler)
	}

}

